home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 1997 July / Freeware CD.iso / FREEWARE / !utils / sfs / SFS117!.EXE / SFS3.DOC < prev    next >
Encoding:
Text File  |  1995-03-20  |  59.5 KB  |  1,206 lines

  1. Advanced SFS Driver Options
  2. ---------------------------
  3.  
  4. The SFS driver supports several advanced options which can be used to customize
  5. the operation of SFS.  These include the ability to mount SFS volumes
  6. automatically when the driver is loaded, the ability to echo passwords to the
  7. screen as they are entered, and the ability to change the read/write status,
  8. disk access mode, auto-unmount timeout of mounted volumes, quick-unmount
  9. hotkey, and the password prompt used when mounting volumes.
  10.  
  11.  
  12. Mounting SFS Volumes at System Startup
  13.  
  14. You can mount SFS volumes automatically when the system is started up rather
  15. than having to use the mountsfs program or SFS Control Panel item by using the
  16. `MOUNT=<identification number>' option when the SFS driver is loaded.  The
  17. <identification number> is the 8- or 14-digit volume identification number
  18. displayed by mksfs when the encrypted volume is created or shown when you use
  19. the `mountsfs information' command.  The volume identifier is used to tell the
  20. SFS driver which volume to load.
  21.  
  22. If the volume allows multiuser access, only the volume administrator can mount
  23. it.  Normal volume users must follow the standard volume mount procedure using
  24. mountsfs.  The operation of shared SFS volumes is explained in more detail in
  25. the section "Sharing SFS Volumes Between Multiple Users" below.
  26.  
  27. If access to the volume is controlled with a smart card key then you must mount
  28. it using mountsfs, as the SFS driver does not have enough information available
  29. to it to allow a mount using a smart card.  If you try to mount a volume which
  30. uses a smart card key, the driver will display:
  31.  
  32.   Error: Volume uses a smart card key, use mountsfs to mount it
  33.  
  34. and skip the mount procedure.
  35.  
  36. When you mount a volume at the time the SFS driver is loaded you can use the
  37. shorter 8-digit volume identifier in most cases, but may need to use the longer
  38. 12-digit form for volumes with more complex access procedures such as ones on
  39. SCSI drives.  mksfs and mountsfs will always print the correct type of
  40. identifier for the volume in question, and this is the one which you should use
  41. after the `MOUNT=' option.
  42.  
  43. For example if mksfs displays the 8-digit volume identifier `530A17FD' for a
  44. particular volume then the command to mount this volume would be:
  45.  
  46.   DEVICE=SFS.SYS MOUNT=530A17FD
  47.  
  48. If it displays a 14-digit volume identifier `C02100142DE0FC' then the command
  49. to mount the volume would be:
  50.  
  51.   DEVICE=SFS.SYS MOUNT=C02100142DE0FC
  52.  
  53. If you supply an incorrect volume identifier, the driver will display
  54.  
  55.   Error: Invalid mount ID, skipping mount
  56.  
  57. and skip the mount procedure.  If the volume identifier is correct, the driver
  58. will locate the required volume on the disk and try to read in the information
  59. needed to process it.  If this information cannot be read or is incorrect, the
  60. driver will display:
  61.  
  62.   Error: Invalid SFS volume information, skipping mount
  63.  
  64. and skip the mount procedure.  If the volume is located on a SCSI drive and the
  65. SCSI manager software needed to access the drive is not present, the driver
  66. will display:
  67.  
  68.   Error: SCSI manager not found, cannot mount SCSI drive
  69.  
  70. and skip the mount procedure.  If all is correct the driver will ask for the
  71. password exactly as mountsfs would:
  72.  
  73.   Please enter password (10...100 characters), [ESC] to quit:
  74.  
  75. You can now enter the password, which for security reasons is not echoed to the
  76. screen.  You can correct any typing errors with the backspace key, and use the
  77. Esc key to quit.  The software will check for a password longer than the
  78. maximum of 100 characters or an attempt to backspace past the start of the
  79. password, and beep a warning when either of these conditions occur.  You are
  80. allowed up to three attempts at entering the correct password before the mount
  81. is skipped.  If you use the Esc key to skip the password entry, the SFS driver
  82. will print:
  83.  
  84.   Mount operation skipped at user request
  85.  
  86. and skip the mount procedure.  Otherwise, once you have entered the password,
  87. the SFS driver will process it and, if an incorrect password is detected, will
  88. print:
  89.  
  90.   Error: Incorrect password, skipping mount
  91.  
  92. and skip the mount procedure.  Otherwise, the driver will perform a quick disk
  93. read test to make sure everything is working correctly.  If this fails, the
  94. driver will display:
  95.  
  96.   Error: Disk read test failed, skipping mount
  97.  
  98. and skip the mount procedure.  If the disk read test is successful, the
  99. encrypted volume will be mounted ready for use, with the drive letter being the
  100. next available DOS drive.  In general the mount procedure is the same as the
  101. one which mountsfs uses, except that the full functionality of mountsfs is not
  102. available during the mount.  In all cases if the mount procedure is skipped the
  103. driver will still be loaded so that you can mount volumes at a later time with
  104. mountsfs or the SFS Control Panel item if required.
  105.  
  106. The mount procedure has a built-in timer which expires if no key is hit for
  107. more than 1 minute.  This is to allow unattended machines to automatically
  108. reboot in case of a power failure without waiting forever for a mount password.
  109. If no key is pressed for more than 1 minute, the SFS driver will print:
  110.  
  111.   Password entry timed out, skipping mount
  112.  
  113. and skip the mount procedure.  Again, the driver will still be loaded to allow
  114. you to mount volumes at a later time.
  115.  
  116. Once the volume has been mounted and after the usual SFS installation message
  117. has been displayed, the driver will display the DOS drive on which the
  118. encrypted volume is mounted.  For example if the volume was available as drive
  119. G: the message would be:
  120.  
  121.   Encrypted volume is now mounted as drive G:
  122.  
  123. If necessary you can swap the drive letter which SFS uses with the JSWAP
  124. utility which comes as part of the JAM disk compression software.  The use of
  125. JSWAP rather than the DOS commands ASSIGN, SUBST, and JOIN, or other
  126. third-party utilities such as the one provided with Stacker are recommended, as
  127. JSWAP provides the safest means of swapping drive letters.  In particular,
  128. JSWAP won't swap any non-physical drives, it won't reassign physical drives to
  129. leave a hole in series of block devices (as opposed to the way DoubleSpace does
  130. things), and it tries to ensure that the occasional program which doesn't
  131. normally handle drive swapping too well should still work.
  132.  
  133. You can also use the JDRIVE utility to force SFS to use a given drive or drives
  134. to mount volumes on, instead of simply using the next drive letter provided by
  135. DOS.  For example, to force the SFS to use the M: drive to mount the volume in
  136. the previous example, the command would be:
  137.  
  138.   DEVICE=JDRIVE.COM M:
  139.   DEVICE=SFS.SYS MOUNT=530A17FD
  140.  
  141. More information on the JAM utilities is given in the section "Creating
  142. Compressed SFS Volumes" below.
  143.  
  144. To mount multiple volumes, you should specify the mount identifiers in the
  145. order in which the volumes are to be mounted.  For example if you wanted to
  146. mount a second SFS volume with the volume identifier `4850414B' then the
  147. previous example would change to:
  148.  
  149.   DEVICE=SFS.SYS MOUNT=530A17FD MOUNT=4850414B
  150.  
  151. As more volumes are mounted, the driver will automatically increase the mount
  152. point allocation until the maximum number of 5 mount points has been reached,
  153. making use of the `UNITS=n' option unnecessary.  If you try to mount more than
  154. 5 volumes, the driver will print:
  155.  
  156.   Error: No more disk units available for mount
  157.  
  158. and skip the mount procedure.
  159.  
  160. You can create an almost completely encrypted SFS system by using the JCHAIN
  161. utility which is part of the JAM disk compression software to allow a boot into
  162. an encrypted SFS volume.  To do this, create a small (say 1MB) bootable
  163. partition which contains the DOS system files IO.SYS and MSDOS.SYS, the drivers
  164. SFS.SYS and JCHAIN.SYS files, and the following CONFIG.SYS:
  165.  
  166.   DEVICE=SFS.SYS MOUNT=<identification number>
  167.   DEVICE=JCHAIN.SYS D:\CONFIG.SYS
  168.  
  169. You can install the system files onto the newly-created partition by formatting
  170. it with:
  171.  
  172.   FORMAT /S
  173.  
  174. and then deleting the COMMAND.COM file which format copies onto the partition.
  175.  
  176. This setup will load the SFS driver from the small partition, mount the
  177. encrypted volume (in this case as drive D:), and then continue the boot process
  178. from the encrypted volume.
  179.  
  180. If you want to load the SFS driver into high memory, you will need to add
  181. memory managers such as HIMEM.SYS and EMM386.EXE to the files on the small
  182. bootable partition, and change the CONFIG.SYS file to:
  183.  
  184.   DEVICE=HIMEM.SYS
  185.   DEVICE=EMM386.EXE
  186.   DEVICEHIGH=SFS.SYS MOUNT=<identification number>
  187.   DEVICE=JCHAIN.SYS D:\CONFIG.SYS
  188.  
  189. There is no need to load JCHAIN high as this program is only used to chain to
  190. the CONFIG.SYS file on the encrypted volume and doesn't stay resident in
  191. memory.
  192.  
  193.  
  194. Setting the Quick-Unmount Hotkey Value
  195.  
  196. When a volume is mounted, the quick-unmount hotkey is by default set to a
  197. combination of the left and right shift keys.  However, like the mountsfs
  198. `hotkey=' option, the SFS driver supports user-defined hotkeys with the
  199. `HOTKEY=quick-unmount hotkey' command, as well as allowing the hotkey unmount
  200. option to be disabled with the `HOTKEY=NONE' command.
  201.  
  202. You can use the `HOTKEY=quick-unmount hotkey' form of the command to specify
  203. any combination of the left shift key, right shift key, control key, alt key,
  204. and a letter key, in the following manner:
  205.  
  206.     Alt key        = `alt'          Control key     = `ctrl'
  207.     Left shift key = `leftShift'    Right shift key = `rightShift'
  208.     Letter key     = `a'...`z'
  209.  
  210. You should seperate the key combinations with hyphens, `-'.  The key names
  211. themselves are not case sensitive and can be given in upper or lower case, or a
  212. mixture of both.  If you use an unknown key name or the key names are not
  213. separated with hyphens, the SFS driver will complain:
  214.  
  215.   Error: Bad quick-unmount hotkey format
  216.  
  217. For example, to specify the use of the left shift and right shift keys as the
  218. quick-unmount hotkey (the usual default setting), the command used in the
  219. previous example would be changed to:
  220.  
  221.   DEVICE=SFS.SYS MOUNT=530A17FD HOTKEY=LEFTSHIFT-RIGHTSHIFT
  222.  
  223. To use the Control, Alt, and Z keys as the quick-unmount hotkey without
  224. mounting any volumes the command would be:
  225.  
  226.   DEVICE=SFS.SYS HOTKEY=CTRL-ALT-Z
  227.  
  228. To disable hotkey unmounting altogether, and without mounting any volumes, the
  229. command would be:
  230.  
  231.   DEVICE=SFS.SYS HOTKEY=NONE
  232.  
  233.  
  234. Echoing the Mount Password to the Screen
  235.  
  236. Normally when the mount password is entered, nothing will be echoed to the
  237. screen.  If you want to have the password echoed to the screen as you type it
  238. in, you can use the `ECHO' option to turn on the echoing of passwords.  Note
  239. that the use of this option makes it much easier for someone to eavesdrop on
  240. the password as you enter it, by simply glancing over your shoulder, by making
  241. use of monitoring facilities installed for general security purposes, or by
  242. using more sophisticated techniques such as TEMPEST monitoring (these are
  243. covered in more detail in the section "Data Security" below).  For these
  244. reasons, use of the `ECHO' option is not recommended.
  245.  
  246.  
  247. Changing the Mount Password Prompt
  248.  
  249. In some environments it may be undesirable to alert others to the fact that
  250. disk encryption is being used.  Using the `SILENT' option with the driver
  251. removes most indications of the presence of SFS, but if you mount volumes when
  252. the system is started up the appearance of the password prompt may still give
  253. things away.  To correct this problem, the SFS driver supports user-definable
  254. prompts with the `PROMPT=user-prompt' command.  You can use this to specify any
  255. single-word prompt, or, if the prompt is surrounded by quotation marks `"', any
  256. combination of characters until another `"' is encountered.  For example to
  257. make the SFS mount procedure appear like a network login, the previous mount
  258. example might be changed to:
  259.  
  260.   DEVICE=SFS.SYS SILENT PROMPT=Login: MOUNT=530A17FD
  261.  
  262. Instead of the usual password prompt, the driver will now display:
  263.  
  264.   Login:
  265.  
  266. when it asks for the password.
  267.  
  268. If you prefer a prompt containing multiple words, you should surround the
  269. prompt itself with quotation marks:
  270.  
  271.   DEVICE=SFS.SYS SILENT PROMPT="Please log on:" MOUNT=530A17FD
  272.  
  273. Unfortunately some versions of DOS convert all characters to uppercase before
  274. passing them to SFS.SYS.  In order to allow lowercase characters to be used in
  275. prompts, the `PROMPT=' option recognises the escape sequence `\s' to mean
  276. "shift to lowercase", so that all subsequent characters will be converted to
  277. lowercase before being displayed.  Subsequent uses of `\s' will toggle the
  278. current shift state, shifting characters back to uppercase or to lowercase
  279. depending on the current shift state.  For example to have the previous
  280. mount example display the prompt "Enter Code:", the command would be:
  281.  
  282.   DEVICE=SFS.SYS SILENT PROMPT="E\sNTER \sC\sODE:" MOUNT=530A17FD
  283.  
  284. The initial "E" is displayed in uppercase, then the first `\s' shifts the
  285. "NTER" to lowercase, the second `\s' shifts the "C" back to uppercase, and the
  286. final `\s' shifts the remaining "ODE:" to lowercase.
  287.  
  288. The `PROMPT=' option also recognises a number of other escape codes which you
  289. can use to specify characters which cannot be directly entered into the
  290. CONFIG.SYS file such as quote marks, tabs, and line breaks.  These are based on
  291. the ones used in the C programming language, and are as follows:
  292.  
  293.     Newline     = \n        Quote mark  = \"        Bell    = \a
  294.     Tab         = \t        Backspace   = \b        Escape  = \e
  295.  
  296. For example to print a line break as part of a prompt, you can use the escape
  297. code '\n', allowing prompts to be split over multiple lines, or simply to have
  298. blank lines as part of the prompt.  An extended form of the above prompt (split
  299. over two lines for clarity) could be given as:
  300.  
  301.   DEVICE=SFS.SYS SILENT PROMPT="Network logon\nPlease enter password:"
  302.                         MOUNT=530A17FD
  303.  
  304. which would be printed as:
  305.  
  306.   Network logon
  307.   Please enter password:
  308.  
  309. You can use the `\e' escape code in combination with an ANSI driver to allow
  310. special actions such as cursor positioning and colour and text attribute
  311. control.  Most of the useful escape sequences begin with `\e[', corresponding
  312. to the "ESC [" combination.  These codes only work if an ANSI driver is loaded
  313. by specifying
  314.  
  315.     DEVICE=ANSI.SYS
  316.  
  317. or some other ANSI-compatible driver in CONFIG.SYS.  Some of the possible codes
  318. are:
  319.  
  320.   ANSI sequence     Action                                      Default
  321.  
  322.   \e[row;columnH    Move the cursor to (row, column)            1, 1
  323.   \e[row;columnf    Move the cursor to (row, column)            1, 1
  324.   \e[rowd           Move the cursor to (row)                    1
  325.   \e[columnG        Move the cursor to (column)                 1
  326.   \e[countA         Moves the cursor up (count) rows            1
  327.   \e[countB         Moves the cursor down (count) rows          1
  328.   \e[countC         Moves the cursor right (count) columns      1
  329.   \e[countD         Moves the cursor left (count) columns       1
  330.   \e[2J             Clears the screen and homes the cursor
  331.   \e[K              Clears from the cursor position to the
  332.                     end of the current line
  333.   \e[M              Clears the entire line
  334.   \e[s              Saves the current cursor position
  335.   \e[u              Restores the previously saved cursor
  336.                     position
  337.   \e[countb         Repeat following character (count) times    1
  338.   \e[attr;...;attrm Set screen attributes based on (attr).
  339.                     Possible values for the (attr) settings
  340.                     are:
  341.  
  342.                     30 Black foreground   40 Black background
  343.                     31 Red foreground     41 Red background
  344.                     32 Green foreground   42 Green background
  345.                     33 Yellow foreground  43 Yellow background
  346.                     34 Blue foreground    44 Blue background
  347.                     35 Magenta foreground 45 Magenta background
  348.                     36 Cyan foreground    46 Cyan background
  349.                     37 White foreground   47 White background
  350.  
  351. For example to clear the screen and home the cursor before printing the
  352. "Login:" prompt given previously, the command would be:
  353.  
  354.   DEVICE=SFS.SYS SILENT PROMPT=\e[2JLogin: MOUNT=530A17FD
  355.  
  356. To print the prompt in black on a blue background, the command would be:
  357.  
  358.   DEVICE=SFS.SYS SILENT PROMPT=\e[30;44mLogin:\e[37;40m MOUNT=530A17FD
  359.  
  360. The order in which these arguments are given is important, since an option only
  361. affects the other options following it.  If you specify the `PROMPT=' option
  362. after the `MOUNT=' option instead of before it, the driver won't use the new
  363. prompt until after the mount has taken place.  You can use this to allow
  364. multiple independant prompts when several volumes are mounted, so that in the
  365. following example (which is again split over two lines for clarity):
  366.  
  367.   DEVICE=SFS.SYS SILENT PROMPT="Local server logon: " MOUNT=C0EDBABE
  368.                         PROMPT="Printer server logon: " MOUNT=2A1102D3
  369.  
  370. the prompt "Local server logon: " would be used for the first volume to be
  371. mounted and the prompt "Printer server logon: " would be used for the second
  372. volume to be mounted.  The `PROMPT=' setting applies for all further mounts
  373. until another `PROMPT=' option is given.
  374.  
  375.  
  376. Changing the Mount Read/Write Access Status
  377.  
  378. You can enable or disable write access to a mounted volume in the same manner
  379. as is done through the use of the `mountsfs +r' and `mountsfs +rw' options
  380. (more information on read-only access to SFS volume is given in the section
  381. "Mounting an SFS Volume" above).  In the case of the SFS driver, the options
  382. used to control write access are `READONLY' and `READWRITE'.  For example to
  383. mount the volume used in the previous example read-only the command would be:
  384.  
  385.   DEVICE=SFS.SYS READONLY MOUNT=530A17FD
  386.  
  387. Like the other options which affect the mounting of volumes, you must specify
  388. the `READONLY' or `READWRITE' options before the `MOUNT=' which they are to
  389. affect.  These options apply for all further mounts until another `READONLY' or
  390. `READWRITE' option is given.  For example to mount the first volume in the
  391. previous example read-only and the second one with normal write access the
  392. command would be:
  393.  
  394.   DEVICE=SFS.SYS READONLY MOUNT=530A17FD READWRITE MOUNT=4850414B
  395.  
  396.  
  397. Mounting Volumes as Non-Removable Drives
  398.  
  399. Since SFS volumes may be unmounted at any point through a hotkey unmount, an
  400. auto-unmount timeout, a smart card unmount, or through the use of the mountsfs
  401. program or SFS Control Panel item, the driver reports them to the operating
  402. system as being removable volumes.  This means that the system won't become
  403. confused when disk volumes suddenly cease to exist after an unmount.
  404.  
  405. Unfortunately some software, while handling removable volumes perfectly well,
  406. prefers to work with non-removable or fixed volumes.  An example of this is
  407. Windows, which won't display volume labels for removable volumes.  Disk
  408. buffering and cacheing for fixed volumes is also somewhat better since the
  409. operating system doesn't have to worry about the volume being unmounted
  410. suddenly, leaving it with nothing to write buffered data to.
  411.  
  412. The SFS driver lets you mount volumes as fixed volumes through the use of the
  413. FIXED keyword.  By default, or if you use the REMOVABLE keyword, they are
  414. mounted as removable volumes.  You must mount fixed volumes at system startup,
  415. and they will remain mounted until the system is either restarted or powered
  416. down.  Hotkey, timed, smart card, mountsfs, and SFS Control Panel unmounts will
  417. *not* affect volumes mounted in this manner - they will remain mounted at all
  418. times.  For example to mount the volume used in the previous example as a
  419. fixed, non-removable volume the command would be:
  420.  
  421.   DEVICE=SFS.SYS FIXED MOUNT=530A17FD
  422.  
  423. Like the other options which affect the mounting of volumes, you must specify
  424. the `FIXED' or `REMOVABLE' options before the `MOUNT=' which they are to
  425. affect.  These options apply for all further mounts until another `FIXED' or
  426. `REMOVABLE' option is given.  For example to mount the first volume in the
  427. previous example as a fixed volume and the second one as a standard removable
  428. one the command would be:
  429.  
  430.   DEVICE=SFS.SYS FIXED MOUNT=530A17FD REMOVABLE MOUNT=4850414B
  431.  
  432.  
  433. Setting the Auto-unmount Timeout value
  434.  
  435. The auto-unmount timeout value works just like the mountsfs `timeout=' option,
  436. and is used to tell the SFS driver to unmount a volume automatically if it has
  437. not been accessed for a certain amount of time.  You can set the time delay
  438. until the volume is automatically unmounted with the `TIMEOUT=' option, which
  439. is used to specify the delay in minutes until the unmount takes place.  This
  440. option can only be used in conjunction with the `MOUNT=' option, and by default
  441. no auto-unmount timer is set.
  442.  
  443. The use of this option is only necessary if the volumes to be mounted have no
  444. timeout values associated with them, either by mksfs when the volume is created
  445. or by chsfs at a later point in time.  However, you can also use the `TIMEOUT='
  446. option to override any existing timeout settings for the volume.  In order to
  447. return to the default timeout settings, you can use the `TIMEOUT=DEFAULT'
  448. option which sets the timeout of any volumes mounted after this point to either
  449. the value associated with the volume, or none at all if the volume has no
  450. timeout setting.  To force the timeout setting to be disabled entirely, use the
  451. `TIMEOUT=NONE' option to ensure that no timeout is set for any volumes mounted
  452. after this point.  As before, this option holds until another `TIMEOUT='
  453. setting is used.
  454.  
  455. You can display the timeout value associated with a volume with the `mountsfs
  456. information' command.
  457.  
  458. Like the other options which affect the mounting of volumes, you must specify
  459. the `TIMEOUT=' option before the `MOUNT=' which it is to affect.  The
  460. `TIMEOUT=' option applies for all further mounts until another `TIMEOUT='
  461. option is given.
  462.  
  463. Using the previous mount example, but to have a volume automatically unmounted
  464. after 15 minutes of inactivity, the command would be:
  465.  
  466.   DEVICE=SFS.SYS TIMEOUT=15 MOUNT=530A17FD
  467.  
  468. The timeout period must be between 1 and 30,000 minutes (this means the upper
  469. timeout limit is around three weeks).  If you specify a timeout value of less
  470. than 1 minute or greater than three weeks, mountsfs will exit with the error
  471. message:
  472.  
  473.   Error: Timeout value must be between 1 and 30,000 minutes
  474.  
  475. If no accesses are made to a volume within the given time period, it will be
  476. automatically unmounted.  Like the case when a hotkey unmount is made, a single
  477. beep will sound to indicate that the unmount has taken place.  Each volume has
  478. its own timer, allowing you to give different volumes different lengths of time
  479. before they unmount, or to have no auto-unmount time at all.  This is useful
  480. when, for example, one volume containing highly sensitive information needs to
  481. have a very short timeout, while another volume containing less secret
  482. information can have a much longer timeout.  For example the two volumes used
  483. in the previous example might be mounted as follows:
  484.  
  485.   DEVICE=SFS.SYS TIMEOUT=10 MOUNT=530A17FD TIMEOUT=30 MOUNT=4850414B
  486.  
  487. in which the first volume is given a short timeout of only 10 minutes while the
  488. second volume, which presumably holds less critical information, is given a
  489. longer timeout of half an hour.  If the volumes have a timeout setting
  490. associated with them and you have used the `TIMEOUT=' option to override it,
  491. you can restore the default behaviour of using the setting associated with the
  492. volume by using the `TIMEOUT=DEFAULT' option.  For example if, in the previous
  493. example, you wanted to use the default timeout setting for the second volume
  494. instead of overriding it with a 30-minute timeout, the volumes would be mounted
  495. as follows:
  496.  
  497.   DEVICE=SFS.SYS TIMEOUT=10 MOUNT=530A17FD TIMEOUT=DEFAULT MOUNT=4850414B
  498.  
  499. This would mount the first volume as before, and the second volume with
  500. whatever timeout was set for it by mksfs or chsfs.  If you wanted to mount the
  501. second volume with no timeout at all, the volumes would be mounted as follows:
  502.  
  503.   DEVICE=SFS.SYS TIMEOUT=10 MOUNT=530A17FD TIMEOUT=NONE MOUNT=4850414B
  504.  
  505.  
  506. Enabling Alternative Disk Access Modes
  507.  
  508. SFS supports a number of faster disk access modes, which would normally be
  509. specified when the volume is created with mksfs, or set at a later date with
  510. the `chsfs newaccess=' command.  However you may want to override these
  511. settings when volumes are mounted.  You can do this with the `ACCESS=' option,
  512. which takes as an argument the fast access mode given by the `mksfs -c'
  513. command, or `bios' to specify the normal, somewhat slower access mode.  You can
  514. display the access mode currently set for a volume with the `mountsfs
  515. information' command.
  516.  
  517. For example if you created the volume in the previous example with no fast
  518. access mode set, but later discovered that it could be accessed with a fast
  519. access mode of `ide', the mount command would be:
  520.  
  521.   DEVICE=SFS.SYS ACCESS=IDE MOUNT=530A17FD
  522.  
  523. The use of this option is only necessary if the volumes to be mounted have no
  524. alternative access mode associated with them, either by mksfs when the volume
  525. is created or by chsfs at a later point in time.  However, if required, you can
  526. also use the `ACCESS=' option to override any existing access mode settings for
  527. the volume.  To return to the default access mode settings, use the
  528. `ACCESS=DEFAULT' option, which sets the access mode of any volumes mounted
  529. after this point to the mode normally associated with the volume.  For example
  530. if, in the previous two-volume mount example, you wanted to use the default
  531. access mode setting for the second volume instead of overriding it with an
  532. access mode of `ide', the volumes would be mounted as follows:
  533.  
  534.   DEVICE=SFS.SYS ACCESS=IDE MOUNT=530A17FD ACCESS=DEFAULT MOUNT=4850414B
  535.  
  536. This would mount the first volume as before, and the second volume with
  537. whatever access mode was set for it by mksfs or chsfs.
  538.  
  539. If a certain access mode is required in order to access a volume (for example
  540. some volumes on SCSI drives can only be accessed via SCSI access methods) then
  541. SFS will always use the appropriate access mode and ignore the current setting
  542. of the `ACCESS=' option.
  543.  
  544. Like the other options which affect the mounting of volumes, you must specify
  545. the `ACCESS=' option before the `MOUNT=' which it is to affect.  The `ACCESS='
  546. option applies for all further mounts until another `ACCESS=' option is given.
  547.  
  548.  
  549. Changing the Characteristics of an SFS Volume
  550. ---------------------------------------------
  551.  
  552. Once an SFS volume has been created, you can change various characteristics of
  553. the volume and the entire volume itself by using the chsfs program.  chsfs
  554. allows you to change the SFS volume password or smart card password, volume
  555. name, disk access mode, auto-unmount timeout, and card removal action, allows
  556. SFS volumes to be quickly deleted, and allows the reversion of SFS volumes to
  557. their original unencrypted form.
  558.  
  559. The chsfs program is run in the following manner:
  560.  
  561.   chsfs [newpassword] [newvolume=<new volume name>] [newtimeout=<timeout>]
  562.         [newaccess=<new access mode>] [newcardcontrol=<action>] [delete]
  563.         [convert] [volume=<volume name>] [<drive letter>]
  564.  
  565. Since all arguments are named, you can give them in any order.  The order shown
  566. here is merely an example.  In addition, you can abbreviate all commands, so
  567. that for example you can give the `volume=' command as `volume=', `vol=', or
  568. even just `v='.  The full commands are given in the documentation for
  569. completeness.
  570.  
  571. In general you can specify the SFS volume to use by giving the volume's name
  572. with the `vol=' option.  For example if the name was "Secure disk volume" then
  573. the command would be:
  574.  
  575.   chsfs <command> volume=secure
  576.  
  577. You can give the name in upper or lower case and don't have to specify the full
  578. name, as chsfs will match whatever part of the name you supply to the names of
  579. any SFS volumes it finds until it finds a match.  The SFS volumes are checked
  580. in the same order as they are displayed with the `mountsfs info' or `mountsfs
  581. information' command.
  582.  
  583. Alternatively, if the SFS volume to be accessed is on a removable disk, you can
  584. specify it using its drive letter instead of its volume name.  For example if
  585. the disk drive was A: then the command would be:
  586.  
  587.   chsfs <command> a:
  588.  
  589. To find all available SFS volumes on all disks, you can use the `mountsfs info'
  590. option as explaind in the section "Mounting an SFS Volume" above.
  591.  
  592. You can change the basic characteristics of an SFS volume with the
  593. `newpassword', `newvolume', `newaccess', `newtimeout', and `newcardcontrol'
  594. commands, which set a new password, new volume name, new disk access mode, new
  595. auto-unmount timeout, and new card removal action respectively.  These commands
  596. can be used individually, or you can use several of them together (although
  597. they can't be used in conjunction with the `delete' or `convert' options).
  598. Their usage is in general similar to their use with mksfs or sfscard.
  599.  
  600.   `newpassword' takes no arguments and will prompt for the original password
  601.     and then the new password, after which it will change either the volume
  602.     password or the smart card password (depending on how the volume is
  603.     accessed) from the original to the new one.
  604.  
  605.   `newvolume' takes as an argument the new volume name.
  606.  
  607.   `newaccess' takes as an argument the fast disk access mode obtained by
  608.     running the mksfs program with the `-c' option, with the `bios' mode being
  609.     the default, slower access mode.
  610.  
  611.   `newtimeout' takes as an argument the auto-unmount timeout setting in
  612.     minutes, or `none' to clear the auto-unmount timer setting for this volume.
  613.  
  614.   `newcardcontrol' takes as an argument the action to be taken for the volume
  615.     when the smart card it is associated with is removed from the card reader.
  616.     The card control actions are `none', which does nothing, `readonly', which
  617.     makes the volume readonly, and `unmount' and `unmountall', which unmount
  618.     the given volume or all volumes.
  619.  
  620. Since chsfs makes changes to the header record of an encrypted volume, some
  621. anti-virus programs may print a warning about the boot sector of the volume
  622. being changed (despite the fact that the volume is quite clearly not an MSDOS
  623. filesystem).  This warning can be ignored.
  624.  
  625. As an example, to change the name of the SFS volume "Personal data" to
  626. "Letters" and the auto-unmount timer setting to 30 minutes, the command would
  627. be:
  628.  
  629.   chsfs volume=personal newvolume=Letters newtimeout=30
  630.  
  631. If you use the `newpassword' option, chsfs will first ask for the old password:
  632.  
  633.   Please enter old password (10...100 characters), [ESC] to quit:
  634.  
  635. or:
  636.  
  637.   Please enter old smart card password (10...100 characters), [ESC] to quit:
  638.  
  639. depending on whether access to the volume is controlled by a smart card or not.
  640. You can now enter the password, which for security reasons is not echoed to the
  641. screen.  You can correct any typing errors with the backspace key, and use the
  642. Esc key to quit.  The software will check for a password longer than the
  643. maximum of 100 characters or an attempt to backspace past the start of the
  644. password, and beep a warning when either of these conditions occur.
  645.  
  646. After verifying that the password is correct, chsfs will ask for the new
  647. password:
  648.  
  649.   Please enter new password (10...100 characters), [ESC] to quit:
  650.  
  651. or:
  652.  
  653.   Please enter new smart card password (10...100 characters), [ESC] to quit:
  654.  
  655. Like mksfs, chsfs will then ask for this password a second time for safety.
  656. Before updating the volume information, chsfs will perform the same
  657. multiple-overwrite operation used by the chsfs `delete' option (see below) to
  658. erase the original volume header, which is based on the old password.  This
  659. ensures that no trace of the original disk access information remains before it
  660. is replaced by the new access information.  This overwrite operation is not
  661. necessary for smart card keys as the card performs an automatic full erase
  662. cycle as part of writing the new data to the card.
  663.  
  664. Once the new volume name, auto-unmount timeout, access mode, password, or card
  665. control action have been set, chsfs will display a message indicating the
  666. changes made.  For the above example the message would be:
  667.  
  668.   Volume characteristics successfully updated.
  669.  
  670.   The new volume name is `Letters'.
  671.   The new auto-unmount timeout is set to 30 minutes.
  672.  
  673. Note that chsfs doesn't perform the checking for duplicate or nonexistant
  674. volume names and the checking for correct functioning of different disk access
  675. modes which mksfs does.  This is to allow you to override the safe choices
  676. forced by mksfs if required[1].
  677.  
  678. You can make changes to the SFS volume itself using the `convert' and `delete'
  679. commands.  `convert' converts a volume back to its original unencrypted form,
  680. and `delete' deletes it entirely, leaving behind what appears to the operating
  681. system as an unformatted disk filled with random noise.
  682.  
  683. Since converting or deleting a volume while it is mounted is rather dangerous,
  684. chsfs checks whether the volume to be converted or deleted is currently
  685. mounted.  If it is mounted and removable, it will prompt:
  686.  
  687.   Warning: This volume is currently mounted.  Do you wish to unmount it
  688.            and continue [y/n]
  689.  
  690. At this point you can enter 'Y' to continue and 'N' to exit the program.  If
  691. you enter 'N', you can unmount the volume using mountsfs or the quick-unmount
  692. hotkey before re-running chsfs.  If the volume has been mounted as a fixed,
  693. non-removable volume, chsfs will exit with the error message:
  694.  
  695.   Error: This volume has been mounted as a non-removable volume and cannot be
  696.          unmounted.  In order for chsfs to be able to work with it, change the
  697.          CONFIG.SYS entry for the SFS driver and reboot the machine.
  698.  
  699. The delete option will first print the name and creation date of the SFS volume
  700. to be deleted.  You should use this information to check the exact name and
  701. date of the volume to ensure that this is indeed the one to be deleted.  In
  702. this example the volume information will be displayed as:
  703.  
  704.   Encrypted volume is `Incriminating evidence', created 04/11/93
  705.  
  706. If the volume is controlled by a smart card, chsfs will also print:
  707.  
  708.   Access to this volume is controlled by a smart card key.
  709.  
  710. chsfs will now prompt for either the volume or smart card password in the usual
  711. manner.  It uses this to check that access to the volume is legitimate, and is
  712. needed for chsfs to acquire various pieces of information it needs to perform
  713. the deletion.  The program will then prompt:
  714.  
  715.   Warning: The deletion operation will permanently destroy all data on this
  716.            volume.  Are you sure you want to continue with the deletion [y/n]
  717.  
  718. At this point you can enter 'Y' to continue and 'N' to exit the program.
  719.  
  720. If you tell chsfs to continue, it will perform multiple overwrite passes over
  721. the SFS volume header (which contains all the information needed to access the
  722. volume), printing a progress report as it performs the overwriting:
  723.  
  724.   Overwriting: Pass 1
  725.  
  726. In total chsfs will perform 35 separate overwrite passes which have been
  727. selected to provide the best possible chances of destroying data for various
  728. disk encoding schemes (the exact details are given in the section "Deletion of
  729. SFS Volumes" below).  Once the multiple overwrites have completed, chsfs will
  730. print an informational message about the deletion operation:
  731.  
  732.   Encrypted volume `Incriminating evidence' has been destroyed
  733.  
  734. If the volume is on a fixed disk, you may want to reboot your machine to make
  735. the newly-deleted volume visible to DOS.  Volumes on floppy disks will
  736. automatically be visible.  Since the disk volume is now filled with random
  737. garbage, it will need to be formatted in the same way an unformatted disk would
  738. be before it can be used by DOS.
  739.  
  740. The convert option will, like the delete option, first print the name and
  741. creation date of the SFS volume to be converted.  You should use this
  742. information to check the exact name and date of the volume to ensure that this
  743. is indeed the one to be converted.  In this example the volume information will
  744. be displayed as:
  745.  
  746.   Encrypted volume is `Disk data', created 07/12/93
  747.  
  748. If the volume is controlled by a smart card, chsfs will also print:
  749.  
  750.   Access to this volume is controlled by a smart card key.
  751.  
  752. chsfs will now ask for the volume or smart card password in the usual manner,
  753. and will then prompt:
  754.  
  755.   Warning: You are about to convert this volume from an encrypted SFS one to
  756.            a normal DOS one.  Are you sure you want to continue with the
  757.            conversion [y/n]
  758.  
  759. At this point you can enter 'Y' to continue and 'N' to exit the program.
  760.  
  761. Like mksfs, chsfs will then begin converting the disk.  As it processes the
  762. volume, it prints a progress bar going from 0% complete to 100% complete.  The
  763. conversion process will take a few minutes on most disks, and is somewhat
  764. slower than a standard disk formatting procedure, since the formatting process
  765. usually only writes a very small amount of data to the start of the disk and
  766. scans for bad sectors, whereas chsfs has to read, decrypt, and write the entire
  767. disk volume.
  768.  
  769. As the conversion progresses, the progress bar will gradually fill up until it
  770. shows that the conversion is complete.  Once this has finished, chsfs will
  771. display the message:
  772.  
  773.   Encrypted volume `Disk data' has been converted to a normal DOS volume.
  774.  
  775. The converted volume is now ready to be used as a normal DOS disk again.  If
  776. the volume is on a fixed disk, DOS will still think it is an encrypted SFS one
  777. rather than a normal DOS one.  It is recommended that you reboot your machine
  778. to clear any memories of the old volume from the system, as DOS will not be
  779. able to see the converted volume until the reboot takes place.  As a reminder,
  780. chsfs will display:
  781.  
  782.   You may wish to reboot your machine to update the status of the volume,
  783.   which will become available as a standard DOS disk.
  784.  
  785. before exiting.  If the volume is on a removable disk, no reboot is necessary
  786. and chsfs will simply print:
  787.  
  788.   The volume is now available as a standard DOS disk.
  789.  
  790. Footnote [1]: This makes the (possibly incorrect) assumption that the chsfs
  791.               user knows what they are doing.
  792.  
  793.  
  794. Sharing SFS Volumes Between Multiple Users
  795. ------------------------------------------
  796.  
  797. At times it may be necessary to share a single encrypted SFS volume between
  798. multiple users.  For instance several individuals may require access to a
  799. volume containing confidential business correspondence as part of their
  800. day-to-day duties.  Usually this would require using a common password which is
  801. known to every member of the group of people who require access.  The need to
  802. share passwords is a serious weakness, as the inability to choose individual,
  803. unique passwords increases the chances that a simple, easy-to-remember (and
  804. easy-to-guess) password is chosen, or that at least one person writes it down
  805. if it is too hard to remember.
  806.  
  807. SFS solves this problem by allowing each member of the group access to an
  808. encrypted volume under their own individual password.  The allocation of access
  809. rights to a volume is controlled by an administrator who can grant or revoke
  810. access as required.  The administration process is handled by the adminsfs
  811. program, which is run in the following manner:
  812.  
  813.   adminsfs [adduser=<user name>] [deluser=<user name>]
  814.            [chuser=<user name>] [showuser=<user name>] [showall]
  815.            [validfrom=<DDMMYY>] [validto=<DDMMYY>] [userfile=<user file>]
  816.  
  817. Since all arguments are named, you can give them in any order.  The order shown
  818. here is merely an example.
  819.  
  820. [!!!! That's all there is at the moment.  adminsfs is still being checked
  821.       out by beta-testers and parts of it are still under review.  If anyone
  822.       has any suggestions for it, let me know !!!!]
  823.  
  824.  
  825. Creating Compressed SFS Volumes
  826. -------------------------------
  827.  
  828. Creating a compressed drive inside an SFS volume provides, apart from the usual
  829. benefit of increasing the apparent disk space, some additional security against
  830. an attack by breaking up the very regular standard filesystem structure
  831. containing large quantities of known data at known locations into a compressed
  832. filesystem whose structure and contents are much harder to ascertain.
  833. This section contains information on using SFS with Stac Electronic's "Stacker"
  834. and JAM Software's "JAM".
  835.  
  836.  
  837. SFS and Stacker
  838.  
  839. The instructions given here are for Stac Electronics "Stacker", although it
  840. should be possible to do the same thing with other reasonably advanced disk
  841. compressors.  Stacker allows the compression of an entire DOS drive, or
  842. compression of any remaining free space on the drive.  To create a compressed
  843. Stacker volume, you should first mount the SFS volume on which you want to
  844. install Stacker, either with the system-startup mount option of the SFS driver
  845. or with the mountsfs utility or SFS Control Panel item.  You can then install
  846. Stacker in the usual manner onto the mounted volume.  Under Windows, this
  847. involves chosing the "Compress" option from the "Stacker Toolbox", and under
  848. DOS it involves running the "stac.exe" program and picking the appropriate
  849. option, or using the "create.com" program on the drive to be compressed.
  850. Stacker will then defragment the drive, ask a few questions, and create the
  851. Stacker volume.  When the Stacker drive has been created, the appropriate
  852. mounting parameters for the drive will be added to the STACKER.INI file.
  853.  
  854. Once the installation has completed, the SFS volume will contain the STACKVOL
  855. file in which Stacker stores the compressed disk data.
  856.  
  857. You can mount the Stacker drive in two ways, either from CONFIG.SYS onto an SFS
  858. volume mounted at system startup, or at a later point (which, however, means
  859. that it loads an extra copy of the environment variables).  It is also possible
  860. to load the driver without activating a compressed drive by removing the
  861. specification for the drive to be mounted from the STACKER.INI file (this is
  862. normally used for floppies, but works for SFS as well since Stacker treats SFS
  863. volumes as a removable drive).  You can then mount the drive at a later time
  864. with the "stacker <drive letter>" command, thereby avoiding the need to mount
  865. an SFS volume at startup.  Under DOS 6, Stacker 4.0 loads using a device
  866. driver, but hooks into DOS like DoubleSpace/DriveSpace does.  The rest of
  867. Stacker is then loaded with the STACHIGH.SYS driver.
  868.  
  869. As SFS uses whatever drive letters DOS allocates to it, the stacked drive will
  870. take over the drive letter used by the SFS volume rather than swapping drive
  871. letters for the stacked and normal drive as it usually does.  This shouldn't
  872. provide any problems when accessing the drive, as the compressed and encrypted
  873. drive will simply replace the encrypted drive, but it will create problems at a
  874. later point because Stacker uses the "Mount replaced" option, in which Stacker
  875. manipulates internal DOS data structures to completely replace the original SFS
  876. drive.  This means that mountsfs can no longer find the mounted SFS drive for
  877. the "status", "info", "information", and "unmount" commands, although timed
  878. unmounts, hotkey unmounts, and smart card unmounts performed by the SFS driver
  879. itself will still work.
  880.  
  881.  
  882. SFS and JAM
  883.  
  884. Using JAM Software's "JAM" compressor with SFS is somewhat simpler than using
  885. Stacker, and provides the additional benefit of speeding up effective disk
  886. access times since the high-speed JAM software reduces the amount of data which
  887. the SFS driver needs to encrypt.  To create a compressed JAM volume, you should
  888. first mount the SFS volume on which the JAM volume is to be installed, either
  889. with the system-startup mount option of the SFS driver, with the mountsfs
  890. utility, or with the SFS Control Panel item.  You can then create the
  891. compressed volume as described in the JAM documentation with the JCREATE
  892. utility.
  893.  
  894. Once you have created the compressed disk volume, you can mount it by loading
  895. the JAM.SYS driver via the CONFIG.SYS file and then mounting the JAM volume
  896. with the JMOUNT utility, either onto an SFS volume mounted at system startup by
  897. running JMOUNT from the CONFIG.SYS file, or at a later point by running JMOUNT
  898. from the command line.  This avoids the need to mount an SFS volume at startup.
  899.  
  900. Unlike Stacker, JAM does not mess with DOS drive letters, allowing both the SFS
  901. volume and the JAM volume it contains to be accessed as normal.  JAM is
  902. available for FTP from garbo.uwasa.fi and all garbo mirrors as
  903. /pc/arcers/jam125sw.zip.
  904.  
  905.  
  906. Emergency Access to Encrypted Information
  907. -----------------------------------------
  908.  
  909. It may sometimes be necessary to provide access to encrypted data without the
  910. use of the passphrase used to encrypt it, perhaps because the passphrase has
  911. been forgotten or the person who encrypted the data has died or moved on to
  912. work for another company.  This provides a backup means of access to encrypted
  913. data in case of an emergency.
  914.  
  915. The approach taken by the US government, in the form of the Clipper initiative,
  916. is to have all encryption keys (not just those for which emergency access is
  917. required) held in escrow by the government.  If disclosure of the information
  918. is required, the key is retrieved from storage and used to decrypt the
  919. information.  A side effect of this is that any data which has ever been
  920. encrypted with the key, and any data which will ever be encrypted in the
  921. future, has now been rendered unsafe.  This system is best viewed as
  922. uncontrolled disclosure.  In addition, there is no possibility of ever having
  923. completely safe data since someone else will always hold a copy of your
  924. encryption keys.
  925.  
  926. SFS includes a built-in mechanism for fully controlled access to encrypted data
  927. so that, if access is ever required without the proper passphrase being known,
  928. only the information for which access is authorized may be revealed.  All other
  929. encrypted data remains as secure as it was previously.
  930.  
  931. This is achieved by encrypting each disk volume with a unique disk key which is
  932. completely unrelated to the users passphrase, or key.  When the user key is
  933. entered, it is used to decrypt the disk key, and the disk key is then used to
  934. decrypt the encrypted volume.  There is no correlation between the user key and
  935. the disk key, so that revealing the disk key does not reveal the user key.
  936. This access mechanism looks as follows:
  937.  
  938.  + User  - - - +            + Encrypted volume  - - - - - - - - - - - - +
  939.  
  940.  | +--------+  |  decrypt   | +--------+   decrypt    +--------------+  |
  941.    |User Key|   ----------->  |Disk Key| -----------> |Encrypted Data|
  942.  | +--------+  |            | +--------+              +--------------+  |
  943.  
  944.  + - - - - - - +            + - - - - - - - - - - - - - - - - - - - - - +
  945.  
  946. A simple way to use this keying mechanism for key escrow is to store the disk
  947. key for the volume in a safe place, and allow it to be entered directly in
  948. place of the usual user key.  Since the user key is independant of the disk
  949. key, it can be changed as often as required while still allowing access via the
  950. escrowed disk key.  The person using the encrypted data can change and modify
  951. the user key as they please without inadvertently locking out the holder of the
  952. escrowed disk key.  Therefore there are now two ways to access the encrypted
  953. volume:
  954.  
  955.  + User  - - - +            + Encrypted volume  - - - - - - - - - - - - +
  956.  
  957.  | +--------+  |  decrypt   | +--------+   decrypt    +--------------+  |
  958.    |User Key|   ----------->  |Disk Key| -----+-----> |Encrypted Data|
  959.  | +--------+  |            | +--------+      |       +--------------+  |
  960.                                               |
  961.  + - - - - - - +            + - - - - - - - - | - - - - - - - - - - - - +
  962.                                               |
  963.  + Escrow  - - - - - - - - - +                |
  964.                                               |
  965.  | +----------------------+  |                |
  966.    |Non-encrypted Disk Key|    ---------------+
  967.  | +----------------------+  |
  968.  
  969.  + - - - - - - - - - - - - - +
  970.  
  971. Unfortunately, storing a non-encrypted disk key which allows access to a volume
  972. is rather dangerous since it creates a convenient point of attack.  Whereas the
  973. user key is usually stored in a reasonably secure place - human memory - the
  974. escrowed disk key or keys would typically be recorded in some manner and stored
  975. in (hopefully) secure location such as a safe.  Anyone who gains access to the
  976. safe will have access to the encrypted volume.  In addition, the escrowed key
  977. provides a single point of vulnerability to accidental damage such as
  978. destruction by fire.
  979.  
  980. A solution to this problem is to escrow not a single key but multiple key
  981. fragments.  The established practice of needing multiple keys held by different
  982. people to open a safe can be used for encryption as well - simply take a single
  983. key, break it into a number of pieces, and give one piece to each member of a
  984. group of people.  To access the data, the group combines their partial keys
  985. into one whole key, and the data is decrypted[1].  For example, if a company
  986. president who holds the keys to a safe or data dies suddenly, the
  987. vice-presidents can combine their partial keys to allow access.  The previous
  988. access diagram now becomes:
  989.  
  990.  + User  - - - +            + Encrypted volume  - - - - - - - - - - - - +
  991.  
  992.  | +--------+  |  decrypt   | +--------+   decrypt    +--------------+  |
  993.    |User Key|   ----------->  |Disk Key| -----+-----> |Encrypted Data|
  994.  | +--------+  |            | +--------+      |       +--------------+  |
  995.                                               |
  996.  + - - - - - - +            + - - - - - - - - | - - - - - - - - - - - - +
  997.                                               |
  998.                                               +----------------+
  999.                                                                |
  1000.  + Escrow  - - - - - - - - - - - - - - - - - - - - - - - - +   |
  1001.                                                                |
  1002.  | +--------------+                                        |   |
  1003.    |Key fragment 1| --+                                        |
  1004.  | |Key fragment 2| --+ combine   +----------------------+ |   |
  1005.    |Key fragment 3| --+---------> |Non-encrypted Disk Key|  ---+
  1006.  | |     ...      |   |           +----------------------+ |
  1007.    |Key fragment n| --+
  1008.  | +--------------+                                        |
  1009.  
  1010.  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
  1011.  
  1012. This method has one serious shortcoming, which is the requirement that all the
  1013. keyholders meet to recreate the original key.  If one keyholder is killed in an
  1014. accident, or loses or forgets their key fragment, or refuses to give it up,
  1015. recreation of the original key becomes impossible.
  1016.  
  1017. SFS solves this problem by allowing redundant key fragments to be held in
  1018. escrow, so that only a certain percentage of the total number of fragments need
  1019. to be recombined to recreate the disk key.  For example, a key may be broken
  1020. into 5 fragments of which any 3 can be used to recreate the disk key.  A
  1021. company director might give the 5 fragments to the board of directors so that,
  1022. if anything were to happen to him, any 3 of the 5 could get together and access
  1023. his encrypted data.
  1024.  
  1025. The SFS key escrow features are handled by chsfs (to create the key fragments
  1026. for escrow) and mountsfs (to access the encrypted data using the escrowed key
  1027. fragments).  There are two escrow parameters:
  1028.  
  1029.   - The total number of fragments to break the key into
  1030.  
  1031.   - The quorum, or number of fragments needed to recover the key.  This may be
  1032.     anything up to and including the total number of fragments.
  1033.  
  1034. For the best damage resistance, it is recommended that you choose a quorum
  1035. which is somewhat less than the total number of fragments in case one or two of
  1036. the fragments are lost.
  1037.  
  1038. Technical details on the secret sharing scheme used by SFS are given in the
  1039. section "Safeguarding Cryptographic Keys" below.
  1040.  
  1041. Footnote [1]: The US government's Escrowed Encryption Standard works like this,
  1042.               with partial keys being held by two seperate government
  1043.               organisations.
  1044.  
  1045.  
  1046. Creating Escrow Keys with chsfs
  1047.  
  1048. The creation of key fragments for escrow is handled by the chsfs
  1049. `splitkey=<quorum>/<total>' command, where <quorum> is the number of key
  1050. fragments needed out of the <total> to reconstruct the disk key.  Using the
  1051. previous example in which 3 fragments out of the total of 5 are needed to
  1052. recreate the disk key, the chsfs command would be:
  1053.  
  1054.   chsfs splitkey=3/5 volume=data
  1055.  
  1056. which would take the disk key for the indicated volume and split it into 5
  1057. fragments.  In its simplest form, `splitkey=1/1' creates just one key fragment
  1058. equivalent to the whole key.
  1059.  
  1060. Before it splits the key, chsfs will prompt:
  1061.  
  1062.   The distributed key which will be created will contain 5 fragments, of which
  1063.   at least 3 will be needed to allow access to the SFS volume.  This means that
  1064.   up to 40% of the total number of fragments can be lost or destroyed before
  1065.   access to the encrypted volume becomes impossible.  Are you sure you want to
  1066.   use these parameters [y/n]
  1067.  
  1068. At this point you can enter 'Y' to continue and 'N' to exit the program without
  1069. creating the key fragments.
  1070.  
  1071. chsfs will now ask for the volume or smart card password in the usual manner:
  1072.  
  1073.   Please enter new password (10...100 characters), [ESC] to quit:
  1074.  
  1075. or:
  1076.  
  1077.   Please enter new smart card password (10...100 characters), [ESC] to quit:
  1078.  
  1079. You can now enter the password, which for security reasons is not echoed to the
  1080. screen.  You can correct any typing errors with the backspace key, and use the
  1081. Esc key to quit.  The software will check for a password longer than the
  1082. maximum of 100 characters or an attempt to backspace past the start of the
  1083. password, and beep a warning when either of these conditions occur.
  1084.  
  1085. After verifying that the entered password is correct, chsfs will break the key
  1086. into the required number of fragments, write them to disk in the current
  1087. directory, and recombine them and compare the recovered key to the original as
  1088. a check to ensure the key can be recovered from the fragments.  Once this
  1089. self-checking process has finished, it will display the message:
  1090.  
  1091.   Key fragments successfully written to disk.
  1092.  
  1093. The key fragments are stored in files of the format `xxxxxxxx.yyy', where
  1094. `xxxxxxxx' is an 8-digit random value used to identify related files, and `yyy'
  1095. is the number of the key fragment.  These values aren't terribly important or
  1096. critical, but are merely used for bookkeeping purposes.
  1097.  
  1098. These key fragments contain critical information used for accessing encrypted
  1099. volumes.  Anyone in posession of enough fragments to recreate the disk key can
  1100. gain access to the encrypted data it protects, so you should try to disperse
  1101. the fragments *immediately*.  Ideally, you should only create the fragments
  1102. when the current directory is on a RAM drive, so that they are never written to
  1103. a hard drive or floppy drive in one group, although writing them to an
  1104. encrypted SFS volume is also a possibility if no RAM drive is available.  You
  1105. can then copy them to seperate floppies, possibly with encryption, and disperse
  1106. them to the people or sites that will act as escrow agents.
  1107.  
  1108. The sequence of steps to follow for the best security is therefore:
  1109.  
  1110.   1. Change drive and directory to a RAM drive (preferred) or an SFS drive.
  1111.   2. Run chsfs with the splitkey option to create the key fragments.
  1112.   3. Encrypt the fragments if necessary.
  1113.   4. Copy individual fragments to the distribution media, for example floppy
  1114.      disks.
  1115.   5. Overwrite the originals on the RAM drive or SFS drive, or reboot the
  1116.      machine to clear the data if it's on a RAM drive[1].
  1117.  
  1118. If writing the fragments to an unencrypted hard drive is unavoidable, you
  1119. should overwrite them with a secure file erasure program as soon as possible.
  1120. The difficulty of truly erasing data on magnetic media is covered in the
  1121. section "Deletion of SFS Volumes" below.
  1122.  
  1123.  
  1124. Accessing Encrypted Data using Escrowed Key Fragments
  1125.  
  1126. The first step in accessing an encrypted volume using escrowed key fragments is
  1127. to recombine enough of the fragments to recreate the key.  You can do this by
  1128. copying the key fragments into one place, if possible a directory on a RAM
  1129. drive, or an SFS drive if one is available, as was used for the key dispersion
  1130. process described above.
  1131.  
  1132. To use the key fragments instead of the usual passphrase to mount a volume, run
  1133. mountsfs with the `-c' combine option, which can also be used for any mountsfs
  1134. and chsfs commands which would normally require the passphrase to be entered,
  1135. such as the `chsfs newpassword' or `chsfs convert' commands.  In this case when
  1136. mountsfs is used, the command to mount the disk volume used in the previous key
  1137. dispersion example using the escrowed key fragments would be:
  1138.  
  1139.   mountsfs -c volume=data
  1140.  
  1141. mountsfs will then scan the current directory looking for key fragments.  If
  1142. it can't find any key fragments for the volume in question, mountsfs will
  1143. exit with the message:
  1144.  
  1145.   Error: Couldn't find any of the key fragments needed to recreate the
  1146.          encryption key.
  1147.  
  1148. If one or more groups of key fragments are found, but none of the groups
  1149. contain enough fragments to allow the disk key to be recovered, mountsfs will
  1150. display more specific information for each group of shares.  For example,
  1151. assume that three groups of shares are created with the parameters:
  1152.  
  1153.   chsfs splitkey=5/8
  1154.   chsfs splitkey=3/5
  1155.   chsfs splitkey=2/3
  1156.  
  1157. These are then dispersed to third parties acting as escrow agents.  When access
  1158. to the encrypted volume is required, some of the shares from each of the three
  1159. groups are obtained from the escrow agents, and mountsfs is run on them, with
  1160. the following results:
  1161.  
  1162.   Warning: Couldn't find enough key fragments in the first set of shares to
  1163.            recreate the encryption key, since at least 5 fragments are needed,
  1164.            but only 3 were found.
  1165.  
  1166.   Warning: Couldn't find enough key fragments in the second set of shares to
  1167.            recreate the encryption key, since at least 3 fragments are needed,
  1168.            but only 2 were found.
  1169.  
  1170.   Warning: Couldn't find enough key fragments in the third set of shares to
  1171.            recreate the encryption key, since at least 2 fragments are needed,
  1172.            but only 1 was found.
  1173.  
  1174.   Error: Couldn't find any more key fragments to use to try to recreate the
  1175.          encryption key.
  1176.  
  1177. In this case there are not enough shares present from any of the three groups
  1178. to allow the disk key to be recovered.  Two more fragments are needed to
  1179. recover the key from the first group, and one more fragment is needed to
  1180. recover the key from the second and third group of shares.
  1181.  
  1182. Otherwise, if mountsfs can recover the disk key from the key fragments, it will
  1183. display the message:
  1184.  
  1185.   Disk key has been recovered from key fragments
  1186.  
  1187. and mount the volume as usual.
  1188.  
  1189. Since this method of access is meant for emergencies only, you should assign a
  1190. new passphrase to the volume as soon as possible.  You can do this by running
  1191. chsfs with the `-c' combine option, which works exactly like the mountsfs `-c'
  1192. option.  If run with the `newpassword' command, chsfs will recreate the disk
  1193. key from the key fragments as mountsfs did, and then prompt for and set a new
  1194. user password as it normally would.  You can also use the `-c' option with
  1195. other chsfs commands such as `delete' and `convert'.
  1196.  
  1197. As soon as the volume has been mounted or modified as required, you should
  1198. destroy the key fragments on the RAM drive or SFS drive by wiping them with a
  1199. secure file erasure program, or rebooting the machine to clear the data if it
  1200. is stored on a RAM drive[1].
  1201.  
  1202. Footnote [1]: In fact, rebooting a PC will not necessarily wipe a RAM disk.
  1203.               Turning the machine off for 5-10 seconds (some DRAM cells can
  1204.               retain data for an amazingly long amount of time, often more than
  1205.               a second) to clear the memory is a better idea.
  1206.